package com.supermarket.product.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.supermarket.common.core.annotation.Excel;
import com.supermarket.common.core.web.domain.BaseEntity;
import org.w3c.dom.Text;

/**
 * 商品管理对象 product_goods
 *
 * @author
 * @date 2025-07-20
 */
@Data
@TableName("product_goods")
public class ProductGoods
{
    private static final long serialVersionUID = 1L;

    /** 商品id */
    @Excel(name = "商品id")
    private Long id;

    /** 商品类型 */
    @Excel(name = "商品类型")
    private Long typeId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String goodsName;

    /** 商品品牌 */
    @Excel(name = "商品品牌")

    private Long brandId;

    /** 商品介绍 */
    @Excel(name = "商品介绍")
    private String introduce;

    /** 商品货号 */
    @Excel(name = "商品货号")
    private String article;

    /** 计量单位 */
    @Excel(name = "计量单位")
    private String measuring;

    /** 商品重量 */
    private Long weight;

    /** 排序 */
    @Excel(name = "排序")
    private Long sortOrder;

    /** 赠送积分 */
    private Long integral;

    /** 赠送成长值 */
    private Long growth;

    /** 积分购买限制 */
    private Long astrict;

    /** 是否预告商品 1是 2否 */
    private Long foreshow;

    /** 是否新品1是 2否 */
    private Long newGoods;

    /** 是否推荐1是 2否 */
    private Long recommend;

    /** 服务保证 1无忧退货2快速退货3免费包邮 */
    private Long serve;

    /** 详细页标题 */
    private String title;

    /** 详细页描述 */
    private String described;

    /** 商品关键字 */
    private String keyword;

    /** 商品备注 */
    private String description;

    /** 选择优惠方式1 无优惠2特惠促销3会员价格4阶梯价格5满减价格 */
    private Long discountsType;

    /** 属性选择 */
    private Long attributeId;

    /** 电脑端详情 */
    private String particularsComputer;

    /** 移动端详情 */
    private String particularsPhone;

    /** 标签1上架2新品3推荐 */
    private Long label;

    /** 商品价格 */
    private BigDecimal price;

    /** 审核状态1待审核2通过3驳回 */
    @Excel(name = "审核状态1待审核2通过3驳回")
    private Long checkStatus;
    @TableField(exist = false)
    private Long checkState;
    /** 售卖状态1上架中2已下架3违规下架 */
    @Excel(name = "售卖状态1上架中2已下架3违规下架")
    private Long rackingStatus;

    @Excel(name = "品牌名称")

    @TableField(exist = false)
    private String brandName;

    @Excel(name = "类型名称")

    @TableField(exist = false)
    private String typeName;
    @Excel(name = "销量")
    private Integer sales;
    /**
     * 库存数量
     */
    private Integer inventory;
    /**
     * 商品图片
     */
    @TableField(exist = false)
    private Text imgUrl;
    private  String imageUrl;
    /**
     * 商品标签
     */
    @TableField(exist = false)
    private String tagName;
    /**
     * 商品属性
     */
    @TableField(exist = false)
    private String attributeName;

    public String getTagName() {
        return tagName;
    }

    public void setTagName(String tagName) {
        this.tagName = tagName;
    }

    public String getAttributeName() {
        return attributeName;
    }

    public void setAttributeName(String attributeName) {
        this.attributeName = attributeName;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getInventory() {
        return inventory;
    }

    public void setInventory(Integer inventory) {
        this.inventory = inventory;
    }

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public Long getCheckState() {
        return checkState;
    }

    public void setCheckState(Long checkState) {
        this.checkState = checkState;
    }

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public String getIntroduce() {
        return introduce;
    }

    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }

    public String getArticle() {
        return article;
    }

    public void setArticle(String article) {
        this.article = article;
    }

    public String getMeasuring() {
        return measuring;
    }

    public void setMeasuring(String measuring) {
        this.measuring = measuring;
    }

    public Long getWeight() {
        return weight;
    }

    public void setWeight(Long weight) {
        this.weight = weight;
    }

    public Long getSortOrder() {
        return sortOrder;
    }

    public void setSortOrder(Long sortOrder) {
        this.sortOrder = sortOrder;
    }

    public Long getIntegral() {
        return integral;
    }

    public void setIntegral(Long integral) {
        this.integral = integral;
    }

    public Long getGrowth() {
        return growth;
    }

    public void setGrowth(Long growth) {
        this.growth = growth;
    }

    public Long getAstrict() {
        return astrict;
    }

    public Text getImgUrl() {
        return imgUrl;
    }

    public void setImgUrl(Text imgUrl) {
        this.imgUrl = imgUrl;
    }

    public void setAstrict(Long astrict) {
        this.astrict = astrict;
    }

    public Long getForeshow() {
        return foreshow;
    }

    public void setForeshow(Long foreshow) {
        this.foreshow = foreshow;
    }

    public Long getNewGoods() {
        return newGoods;
    }

    public void setNewGoods(Long newGoods) {
        this.newGoods = newGoods;
    }

    public Long getRecommend() {
        return recommend;
    }

    public void setRecommend(Long recommend) {
        this.recommend = recommend;
    }

    public Long getServe() {
        return serve;
    }

    public void setServe(Long serve) {
        this.serve = serve;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescribed() {
        return described;
    }

    public void setDescribed(String described) {
        this.described = described;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Long getDiscountsType() {
        return discountsType;
    }

    public void setDiscountsType(Long discountsType) {
        this.discountsType = discountsType;
    }

    public Long getAttributeId() {
        return attributeId;
    }

    public void setAttributeId(Long attributeId) {
        this.attributeId = attributeId;
    }

    public String getParticularsComputer() {
        return particularsComputer;
    }

    public void setParticularsComputer(String particularsComputer) {
        this.particularsComputer = particularsComputer;
    }

    public String getParticularsPhone() {
        return particularsPhone;
    }

    public void setParticularsPhone(String particularsPhone) {
        this.particularsPhone = particularsPhone;
    }


    public Long getLabel() {
        return label;
    }

    public void setLabel(Long label) {
        this.label = label;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public Long getCheckStatus() {
        return checkStatus;
    }

    public void setCheckStatus(Long checkStatus) {
        this.checkStatus = checkStatus;
    }

    public Long getRackingStatus() {
        return rackingStatus;
    }

    public void setRackingStatus(Long rackingStatus) {
        this.rackingStatus = rackingStatus;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    @Override
    public String toString() {
        return "ProductGoods{" +
                "id=" + id +
                ", typeId=" + typeId +
                ", goodsName='" + goodsName + '\'' +
                ", brandId=" + brandId +
                ", introduce='" + introduce + '\'' +
                ", article='" + article + '\'' +
                ", measuring='" + measuring + '\'' +
                ", weight=" + weight +
                ", sortOrder=" + sortOrder +
                ", integral=" + integral +
                ", growth=" + growth +
                ", astrict=" + astrict +
                ", foreshow=" + foreshow +
                ", newGoods=" + newGoods +
                ", recommend=" + recommend +
                ", serve=" + serve +
                ", title='" + title + '\'' +
                ", described='" + described + '\'' +
                ", keyword='" + keyword + '\'' +
                ", description='" + description + '\'' +
                ", discountsType=" + discountsType +
                ", attributeId=" + attributeId +
                ", particularsComputer='" + particularsComputer + '\'' +
                ", particularsPhone='" + particularsPhone + '\'' +
                ", label=" + label +
                ", price=" + price +
                ", checkStatus=" + checkStatus +
                ", checkState=" + checkState +
                ", rackingStatus=" + rackingStatus +
                ", brandName='" + brandName + '\'' +
                ", typeName='" + typeName + '\'' +
                ", inventory=" + inventory +
                ", imgUrl=" + imgUrl +
                ", tagName='" + tagName + '\'' +
                ", attributeName='" + attributeName + '\'' +
                '}';
    }
}
